Modul-Util
Das util-Modul bietet praktische Toolfunktionen wie die Beurteilung des Datentyps, das Kopieren von Objektattributen, das Parsen von Vorlagenzeichenfolgen und die Ereignisverarbeitung.
Das Folgende ist eine spezifische Einführung und Beispiele:
- Bestimmen Sie den Datentyp –
util.is[type]
Dieses Modul bietet Methoden wieisDate
, usw., um den Datentyp der eingehenden Parameter zu bestimmen, zum BeispielisRegExp
:isError
1
2
3var util = require('util');
console.log(util.isDate(new Date()));
console.log(util.isRegExp(/some regexp/));
- Kopieren von Objekteigenschaften –
util.inherits()
Diese Methode kann optional einen Konstruktor von einem anderen erben und so eine prototypische Vererbung implementieren.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16var util = require('util');
function Animal() {
this.name = 'Animal';
this.sleep = function() {
console.log(this.name + '正在睡觉!');
}
}
Animal.prototype.eat = function(food) {
console.log(this.name + '正在吃:' + food);
};
function Cat() {
this.name = 'cat';
}
util.inherits(Cat, Animal);
Verwenden Sie Cat
diesen Konstruktor, um Animal
die Instanzeigenschaften und Prototypeigenschaften von zu erben und Cat
die Eigenschaften und Methoden der Instanz auszugeben.
1
2
3
4var cat = new Cat();
console.log(cat.name);
console.log(cat.eat('fish'));
console.log(cat.sleep());
- util.format() Formatierte Ausgabevorlage
1
2
3
4
5const util = require('util');
const str1 = util.format('%s:%s', 'foo');
const str2 = util.format('%s:%s', 'foo', 'bar', 'baz');
console.log(str1) // => 'foo:%s'
console.log(str2) // => 'foo:bar baz'
Im Folgenden sind util
einige gängige Modulmethoden aufgeführt, die häufig zur Vereinfachung des eigentlichen Entwicklungsprozesses verwendet werden können.
Objekt
LruCache
LRU-Cache-Objekt (zuletzt verwendet), sieheLruCacheObjekt.
1LruCache util.LruCache;
TextDecoder
TextDecoderDekodierungsobjekt, sieheTextDecoderObjekt.
1TextDecoder util.TextDecoder;
TextEncoder
TextEncoderCodieren von Objekten, sieheTextEncoderObjekt.
1TextEncoder util.TextEncoder;
types
typesDas Modul stellt Toolfunktionen zur Bestimmung von Datentypen bereit.
1types util.types;
statische Funktion
format
Formatieren Sie Variablen entsprechend dem angegebenen Format
1
2static String util.format(String fmt,
...args);
Aufrufparameter:
- fmt: String, Formatstring
- args: ..., optionale Parameterliste
Rückgabeergebnisse:
- String, gibt die formatierte Zeichenfolge zurück
Formatformatvariable
1static String util.format(...args);
Aufrufparameter:
- args: ..., optionale Parameterliste
Rückgabeergebnisse:
- String, gibt die formatierte Zeichenfolge zurück
inherits
Erben Sie Prototypfunktionen von einem Konstruktor auf einen anderen. Der Prototyp des Konstruktors wird auf ein neues Objekt gesetzt, das aus der Oberklasse (superConstructor) erstellt wurde.
1
2static util.inherits(Value constructor,
Value superConstructor);
Aufrufparameter:
- constructor: Wert, anfänglicher Konstruktor
- superConstructor: Wert, die geerbte Superklasse
inspect
Die Funktion gibt die Zeichenfolgendarstellung von obj zurück, die hauptsächlich zum Debuggen verwendet wird. Zusätzliche Optionen können verwendet werden, um bestimmte Aspekte der formatierten Zeichenfolge zu ändern.
1
2static String util.inspect(Value obj,
Object options = {});
Aufrufparameter:
- obj: Wert, gibt das zu verarbeitende Objekt an
- options: Objekt, Formatsteuerungsoptionen angeben
Rückgabeergebnisse:
- String, gibt die formatierte Zeichenfolge zurück
Folgende Parameter werden unterstützt:
1
2
3
4
5
6
7
8
9{
"colors": false, // specify if output should be colorized, defaults to false
"depth": 2, // specify the max depth of the output, defaults to 2
"table": false, // specify if output should be a table, defaults to false
"encode_string": true, // specify if string should be encoded, defaults to true
"maxArrayLength": 100, // specify max number of array elements to show, set to 0 or negative to show no elements, defaults to 100
"maxStringLength": 10000, // specify max string length to output, set to 0 or negative to show no strings, defaults to 10000
"fields": [], // specify the fields to be displayed, defaults to all
}
deprecate
Kapselt die angegebene Funktion. Diese Funktion ist nur kompatibel und gibt keine Warnungen aus.
1
2
3static Function util.deprecate(Function fn,
String msg,
String code = "");
Aufrufparameter:
- fn: Funktion, vorausgesetzt, die Funktion muss gekapselt werden
- msg: String, gegebene Warnmeldung
- code: String, angegebene Warnnummer
Rückgabeergebnisse:
- Function, wenn das Kapselungsergebnis
isEmpty
Prüft, ob die angegebene Variable keinen Wert enthält (keine aufzählbaren Eigenschaften)
1static Boolean util.isEmpty(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es leer ist
isArray
Überprüft, ob die angegebene Variable ein Array ist
1static Boolean util.isArray(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um ein Array handelt
isBoolean
Testet, ob die angegebene Variable ein Boolescher Wert ist
1static Boolean util.isBoolean(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es boolesch ist, wird True zurückgegeben
isNull
Überprüft, ob die angegebene Variable Null ist
1static Boolean util.isNull(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es Null ist, wird True zurückgegeben
isNullOrUndefined
Überprüft, ob die angegebene Variable Null oder Undefiniert ist
1static Boolean util.isNullOrUndefined(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es Null oder Undefiniert ist, wird True zurückgegeben
isNumber
Testet, ob die angegebene Variable eine Zahl ist
1static Boolean util.isNumber(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es eine Zahl ist
isBigInt
Testet, ob die angegebene Variable ein BigInt ist
1static Boolean util.isBigInt(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es eine Zahl ist
isString
Überprüft, ob die angegebene Variable ein String ist
1static Boolean util.isString(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um eine Zeichenfolge handelt
isUndefined
Überprüft, ob die angegebene Variable undefiniert ist
1static Boolean util.isUndefined(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es Undefiniert ist, geben Sie True zurück
isRegExp
Testet, ob die angegebene Variable ein reguläres Objekt ist
1static Boolean util.isRegExp(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um ein reguläres Objekt handelt
isObject
Testet, ob die angegebene Variable ein Objekt ist
1static Boolean util.isObject(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um ein Objekt handelt
isDate
Testet, ob die angegebene Variable ein Datumsobjekt ist
1static Boolean util.isDate(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um ein Datumsobjekt handelt
isNativeError
Testet, ob die angegebene Variable ein Fehlerobjekt ist
1static Boolean util.isNativeError(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um ein Fehlerobjekt handelt
isPrimitive
Überprüft, ob die angegebene Variable vom primitiven Typ ist
1static Boolean util.isPrimitive(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um einen primitiven Typ handelt
isSymbol
Überprüfen Sie, ob die angegebene Variable vom Typ Symbol ist
1static Boolean util.isSymbol(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es sich um einen Symboltyp handelt, wird True zurückgegeben
isDataView
Überprüft, ob die angegebene Variable vom Typ DataView ist
1static Boolean util.isDataView(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es sich um einen DataView-Typ handelt, wird True zurückgegeben
isExternal
Überprüft, ob die angegebene Variable vom Typ External ist
1static Boolean util.isExternal(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es sich um einen externen Typ handelt, wird True zurückgegeben
isMap
Überprüfen Sie, ob die angegebene Variable vom Typ Map ist
1static Boolean util.isMap(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es sich um einen Kartentyp handelt, wird True zurückgegeben
isMapIterator
Überprüft, ob die angegebene Variable vom Typ MapIterator ist
1static Boolean util.isMapIterator(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um einen MapIterator-Typ handelt
isPromise
Überprüft, ob die angegebene Variable vom Typ Promise ist
1static Boolean util.isPromise(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- BooleanWenn es sich um einen Promise-Typ handelt, wird True zurückgegeben
isAsyncFunction
Überprüft, ob die angegebene Variable vom Typ AsyncFunction ist
1static Boolean util.isAsyncFunction(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es sich um einen AsyncFunction-Typ handelt, wird True zurückgegeben
isSet
Überprüft, ob die angegebene Variable vom Typ Set ist
1static Boolean util.isSet(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- BooleanWenn es sich um einen Set-Typ handelt, wird True zurückgegeben
isSetIterator
Überprüft, ob die angegebene Variable vom Typ SetIterator ist
1static Boolean util.isSetIterator(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- BooleanWenn es sich um einen SetIterator-Typ handelt, wird True zurückgegeben
isTypedArray
Überprüft, ob die angegebene Variable vom Typ TypedArray ist
1static Boolean util.isTypedArray(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es sich um einen TypedArray-Typ handelt, wird True zurückgegeben
isUint8Array
Überprüft, ob die angegebene Variable vom Typ Uint8Array ist
1static Boolean util.isUint8Array(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um den Typ Uint8Array handelt
isFunction
Testet, ob die angegebene Variable ein Funktionsobjekt ist
1static Boolean util.isFunction(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn es sich um ein Funktionsobjekt handelt
isBuffer
Testet, ob die angegebene Variable eine Funktion istBufferObjekt
1static Boolean util.isBuffer(Value v);
Aufrufparameter:
- v: Wert angesichts der zu erkennenden Variablen
Rückgabeergebnisse:
- Boolean, wenn es eine Funktion istBufferDas Objekt gibt True zurück
isDeepEqual
Die Testwerttiefe entspricht dem erwarteten Wert
1
2static Boolean util.isDeepEqual(Value actual,
Value expected);
Aufrufparameter:
- actual: Wert, der zu testende Wert
- expected: Wert, erwarteter Wert
Rückgabeergebnisse:
- Boolean, gibt True zurück, wenn die Tiefen gleich sind
has
Fragen Sie ab, ob das angegebene Objekt den angegebenen Schlüssel enthält
1
2static Boolean util.has(Value v,
String key);
Aufrufparameter:
- v: Wert angesichts des abzufragenden Objekts
- key: String, geben Sie den abzufragenden Schlüssel an
Rückgabeergebnisse:
- Boolean, gibt ein Array aller Schlüssel des Objekts zurück
keys
Fragen Sie alle Schlüsselarrays des angegebenen Objekts ab
1static Array util.keys(Value v);
Aufrufparameter:
- v: Wert angesichts des abzufragenden Objekts
Rückgabeergebnisse:
- Array, gibt ein Array aller Schlüssel des Objekts zurück
values
Fragen Sie alle Wertearrays des angegebenen Objekts ab
1static Array util.values(Value v);
Aufrufparameter:
- v: Wert angesichts des abzufragenden Objekts
Rückgabeergebnisse:
- Array, gibt ein Array aller Werte des Objekts zurück
clone
Klonen Sie die angegebene Variable. Wenn es sich um ein Objekt oder Array handelt, kopieren Sie den Inhalt in das neue Objekt
1static Value util.clone(Value v);
Aufrufparameter:
- v: Wert, gegeben die zu klonende Variable
Rückgabeergebnisse:
- Value, gibt das Klonergebnis zurück
deepFreeze
Ein Objekt tief einfrieren. Das eingefrorene Objekt und die darin enthaltenen Objekte dürfen nicht geändert werden.
1static util.deepFreeze(Value v);
Aufrufparameter:
- v: Wert, gibt das Objekt an, das eingefroren werden soll
extend
Erweitern Sie die Schlüsselwerte eines oder mehrerer Objekte auf das angegebene Objekt
1
2static Value util.extend(Value v,
...objs);
Aufrufparameter:
- v: Wert, gibt das zu erweiternde Objekt an
- objs: ..., gibt ein oder mehrere Objekte zur Erweiterung an
Rückgabeergebnisse:
- Value, gibt das erweiterte Ergebnis zurück
_extend
Erweitern Sie die Schlüsselwerte eines oder mehrerer Objekte auf das angegebene Objekt, bei dem es sich um einen Extend-Alias handelt
1
2static Value util._extend(Value v,
...objs);
Aufrufparameter:
- v: Wert, gibt das zu erweiternde Objekt an
- objs: ..., gibt ein oder mehrere Objekte zur Erweiterung an
Rückgabeergebnisse:
- Value, gibt das erweiterte Ergebnis zurück
pick
Geben Sie a zurückobjectKopieren und filtern Sie nur die Attributwerte des angegebenen Schlüssels heraus
1
2static Object util.pick(Value v,
...objs);
Aufrufparameter:
- v: Wert, gibt das zu filternde Objekt an
- objs: ..., geben Sie einen oder mehrere Schlüssel zur Auswahl an
Rückgabeergebnisse:
- Object, gibt gefilterte Ergebnisse zurück
omit
Geben Sie a zurückobjectKopieren, wobei nur der Attributwert des angegebenen Schlüssels ausgeschlossen wird
1
2static Object util.omit(Value v,
...keys);
Aufrufparameter:
- v: Wert, gibt das zu filternde Objekt an
- keys: ..., geben Sie einen oder mehrere Schlüssel für den Ausschluss an
Rückgabeergebnisse:
- Object, gibt ausgeschlossene Ergebnisse zurück
first
Holen Sie sich das erste Element des Arrays
1static Value util.first(Value v);
Aufrufparameter:
- v: Wert angesichts des abzurufenden Arrays
Rückgabeergebnisse:
- Value, gibt das abgerufene Element zurück
Rufen Sie die ersten mehreren Elemente eines Arrays ab
1
2static Value util.first(Value v,
Integer n);
Aufrufparameter:
- v: Wert angesichts des abzurufenden Arrays
- n: Ganzzahl, gibt die Anzahl der abzurufenden Elemente an
Rückgabeergebnisse:
- Value, gibt das erhaltene Array von Elementen zurück
last
Holen Sie sich das letzte Element des Arrays
1static Value util.last(Value v);
Aufrufparameter:
- v: Wert angesichts des abzurufenden Arrays
Rückgabeergebnisse:
- Value, gibt das abgerufene Element zurück
Holen Sie sich mehrere Elemente am Ende eines Arrays
1
2static Value util.last(Value v,
Integer n);
Aufrufparameter:
- v: Wert angesichts des abzurufenden Arrays
- n: Ganzzahl, gibt die Anzahl der abzurufenden Elemente an
Rückgabeergebnisse:
- Value, gibt das erhaltene Array von Elementen zurück
unique
Erhalten Sie eine deduplizierte Kopie der Elemente eines Arrays
1
2static Array util.unique(Value v,
Boolean sorted = false);
Aufrufparameter:
- v: Wert, gegebenes Array, das dupliziert werden soll
- sorted: Boolescher Wert, gibt an, ob das Array sortiert ist. Wenn das Array sortiert ist, wird ein schneller Algorithmus verwendet.
Rückgabeergebnisse:
- Array, gibt das Array zurück, nachdem doppelte Elemente entfernt wurden
union
Kombinieren Sie die Werte eines oder mehrerer Arrays zu einem Array mit eindeutigen Werten
1static Array util.union(...arrs);
Aufrufparameter:
- arrs: ..., geben Sie ein oder mehrere Arrays zum Zusammenführen an
Rückgabeergebnisse:
- Array, gibt das zusammengeführte Ergebnis zurück
intersection
Gibt den Schnittpunkt des Arrays zurück, das arr enthält, mit Ausnahme eines oder mehrerer Array-Elemente.
1static Array util.intersection(...arrs);
Aufrufparameter:
- arrs: ..., geben Sie ein oder mehrere Arrays an, die zur Berechnung der Schnittmenge verwendet werden
Rückgabeergebnisse:
- Array, gibt das Ergebnis der Schnittpunktberechnung zurück
flatten
Konvertieren Sie ein Array mit mehreren Verschachtelungsebenen (die Verschachtelung kann eine beliebige Anzahl von Ebenen umfassen) in ein Array mit nur einer Ebene. Wenn Sie den Parameter „shallow“ übergeben, wird das Array auf nur eine Verschachtelungsdimension reduziert.
1
2static Array util.flatten(Value arr,
Boolean shallow = false);
Aufrufparameter:
- arr: Wert, gibt das zu konvertierende Array an
- shallow: Boolean, gibt an, ob nur eine Dimension der Verschachtelung reduziert werden soll, der Standardwert ist false
Rückgabeergebnisse:
- Array, gibt das Ergebnis der Konvertierung zurück
without
Gibt ein Array zurück, das ein oder mehrere Elemente im arr-Array enthält, ausgenommen ein oder mehrere Elemente.
1
2static Array util.without(Value arr,
...els);
Aufrufparameter:
- arr: Wert, gibt das auszuschließende Array an
- els: ..., gibt ein oder mehrere auszuschließende Elemente an
Rückgabeergebnisse:
- Array, gibt ausgeschlossene Ergebnisse zurück
difference
Gibt ein Array zurück, das die Elemente im arr-Array enthält, mit Ausnahme der Elemente ohne Array.
1
2static Array util.difference(Array list,
...arrs);
Aufrufparameter:
- list: Array, gibt das auszuschließende Array an
- arrs: ..., gibt ein oder mehrere Arrays an, die ausgeschlossen werden sollen
Rückgabeergebnisse:
- Array, gibt ausgeschlossene Ergebnisse zurück
each
Durchlaufen Sie alle Elemente in der Liste und geben Sie jedes Element der Reihe nach aus. Wenn der Kontextparameter übergeben wird, wird der Iterator an das Kontextobjekt gebunden. Bei jedem Aufruf des Iterators werden drei Parameter übergeben: (Element, Index, Liste)
1
2
3static Value util.each(Value list,
Function iterator,
Value context = undefined);
Aufrufparameter:
- list: Wert, gibt die Liste oder das Objekt an, das durchlaufen werden soll
- iterator: Funktion, gibt die für die Durchquerung verwendete Rückruffunktion an
- context: Wert, gibt das Kontextobjekt an, das beim Aufruf des Iterators gebunden wird
Rückgabeergebnisse:
- Value, gibt die Liste selbst zurück
map
Jeder Wert in der Liste wird durch eine Transformationsfunktion (Iterator) einem neuen Array zugeordnet. Wenn der Kontextparameter übergeben wird, wird der Iterator an das Kontextobjekt gebunden. Bei jedem Aufruf des Iterators werden drei Parameter übergeben: (Element, Index, Liste)
1
2
3static Array util.map(Value list,
Function iterator,
Value context = undefined);
Aufrufparameter:
- list: Wert, gibt die zu transformierende Liste oder das zu transformierende Objekt an
- iterator: Funktion, gibt die für die Transformation verwendete Rückruffunktion an
- context: Wert, gibt das Kontextobjekt an, das beim Aufruf des Iterators gebunden wird
Rückgabeergebnisse:
- Array, gibt das Ergebnis der Transformation zurück
reduce
Reduzieren Sie die Elemente in der Liste auf einen einzelnen Wert. Wenn der Kontextparameter übergeben wird, wird der Iterator an das Kontextobjekt gebunden. Bei jedem Aufruf des Iterators werden drei Parameter übergeben: (Memo, Element, Index, Liste)
1
2
3
4static Value util.reduce(Value list,
Function iterator,
Value memo,
Value context = undefined);
Aufrufparameter:
- list: Wert, gibt die Liste oder das Objekt an, das zusammengefasst werden soll
- iterator: Funktion, gibt die zur Auflösung verwendete Rückruffunktion an
- memo: Wert, gibt den Anfangswert der Reduzierung an
- context: Wert, gibt das Kontextobjekt an, das beim Aufruf des Iterators gebunden wird
Rückgabeergebnisse:
- Value, gibt das zusammengefasste Ergebnis zurück
parseArgs
Analysieren Sie die Befehlszeilenzeichenfolge und geben Sie die Parameterliste zurück
1static NArray util.parseArgs(String command);
Aufrufparameter:
- command: String, gibt die zu analysierende Befehlszeilenzeichenfolge an
Rückgabeergebnisse:
- NArray, gibt die analysierte Parameterliste zurück
compile
Kompilieren Sie das Skript in Binärcode
1
2
3static Buffer util.compile(String srcname,
String script,
Integer mode = 0);
Aufrufparameter:
- srcname: String, geben Sie den Namen des hinzuzufügenden Skripts an
- script: String, gibt den zu kompilierenden Skriptcode an
- mode: Ganzzahl, Kompilierungsmodus, 0: Modul, 1: Skript, 2: Worker, Standard ist 0
Rückgabeergebnisse:
- Buffer, gibt den kompilierten Binärcode zurück
util.compileSkripte können in v8-intern ausgeführte Datenblöcke (nicht maschinenausführbarer Code) kompiliert werden. Der kompilierte Code kann direkt von run und require geladen und ausgeführt werden, nachdem er als *.jsc gespeichert wurde.
Da der Zielcode nach der Kompilierung nicht in der Lage ist, den Quellcode rückwärts abzurufen, werden Programme, die auf Function.toString basieren, nicht ordnungsgemäß ausgeführt.
sync
Wickeln Sie Rückruf- oder asynchrone Funktionen ein, um sie synchron aufzurufen
1
2static Function util.sync(Function func,
Boolean async_func = false);
Aufrufparameter:
- func: Funktion, vorausgesetzt, die Funktion muss umschlossen werden
- async_func: Boolescher Wert, gibt an, dass func als asynchrone Funktion verarbeitet wird. Wenn es falsch ist, wird es automatisch beurteilt.
Rückgabeergebnisse:
- Function, gibt eine Funktion zurück, die synchron ausgeführt wird
util.syncVerarbeiten Sie die Rückruffunktion oder die asynchrone Funktion in eine Synchronisierungsfunktion, um den Aufruf zu erleichtern.
Das Rückrufbeispiel lautet wie folgt:
1
2
3
4
5
6
7
8
9
10
11// callback
var util = require('util');
function cb_test(a, b, cb) {
setTimeout(() => {
cb(null, a + b);
}, 100);
}
var fn_sync = util.sync(cb_test);
console.log(fn_sync(100, 200));
Ein asynchrones Beispiel sieht wie folgt aus:
1
2
3
4
5
6
7
8
9// async/await
var util = require('util');
async function async_test(a, b) {
return a + b;
}
var fn_sync = util.sync(async_test);
console.log(fn_sync(100, 200));
Für Versprechen zurückgebende Funktionen, die nicht als asynchron markiert sind, kann der Synchronisierungsmodus manuell angegeben werden:
1
2
3
4
5
6
7
8
9
10
11// async/await
var util = require('util');
function async_test(a, b) {
return new Promise(function(resolve, reject) {
resolve(a + b);
});
}
var fn_sync = util.sync(async_test, true);
console.log(fn_sync(100, 200));
promisify
Wrap-Rückruffunktion für asynchrone Aufrufe
1static Function util.promisify(Function func);
Aufrufparameter:
- func: Funktion, vorausgesetzt, die Funktion muss umschlossen werden
Rückgabeergebnisse:
- Function, gibt eine asynchrone Funktion zurück
util.promisifyVerarbeiten Sie die Rückruffunktion als asynchrone Funktion, um den Aufruf zu erleichtern.
Das Rückrufbeispiel lautet wie folgt:
1
2
3
4
5
6
7
8
9
10
11// callback
var util = require('util');
function cb_test(a, b, cb) {
setTimeout(() => {
cb(null, a + b);
}, 100);
}
var fn_sync = util.promisify(cb_test);
console.log(async fn_sync(100, 200));
callbackify
Asynchrone Funktion für Rückrufanruf umschließen
1static Function util.callbackify(Function func);
Aufrufparameter:
- func: Funktion, vorausgesetzt, die Funktion muss umschlossen werden
Rückgabeergebnisse:
- Function, Rückruffunktion zurückgeben
util.callbackifyVerarbeiten Sie die asynchrone Funktion in eine Rückruffunktion, um den Aufruf zu erleichtern.
Ein asynchrones Beispiel sieht wie folgt aus:
1
2
3
4
5
6
7
8
9
10
11
12// async
var util = require('util');
async function async_test(a, b) {
return a + b;
}
var fn_callback = util.callbackify(async_test);
fn_callback(100, 200, (err, result) => {
console.log(result);
});
buildInfo
Fragen Sie die aktuellen Engine- und Komponentenversionsinformationen ab
1static Object util.buildInfo();
Rückgabeergebnisse:
- Object, gibt das Komponentenversionsobjekt zurück
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24{
"fibjs": "0.25.0",
"clang": "9.1",
"date": "Jun 12 2018 07:22:40",
"vender": {
"ev": "4.24",
"expat": "2.2.5",
"gd": "2.2.4",
"jpeg": "8.3",
"leveldb": "1.17",
"mongo": "0.7",
"pcre": "8.21",
"png": "1.5.4",
"mbedtls": "2.6.1",
"snappy": "1.1.2",
"sqlite": "3.23.0",
"tiff": "3.9.5",
"uuid": "1.6.2",
"v8": "6.7.288.20",
"v8-snapshot": true,
"zlib": "1.2.7",
"zmq": "3.1"
}
}