私は、新しいasync
/await
キーワードで約束がどのように働くのかを学び、理解していますが、紛らわしいことがあります。この記事でpromise async waiting with without callback
:https://davidwalsh.name/async-await
それはasync
とawait
doesntのを使用して、コールバック、例えば、使用する1つを必要とすることを言います:私たちは最初のタイムアウトを定義する必要がある1つは、それをテストしたい場合
async function parallel(callback) {
const wait1 = wait(500);
const wait2 = wait(500);
await wait1;
await wait2;
callback([wait1, wait2]);
}
をwait
としての役割を果たす機能:
var wait = function(time) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(Math.random() * time);
}, time);
});
};
、最終的に我々は何かトンを必要としますO私たちのparallel
関数を呼び出して値を読み取る: - :
async function parallel(callback) {
var wait1 = wait(500).then(function(data) {
wait1 = data;
});
var wait2 = wait(500).then(function(data) {
wait2 = data;
});
await wait1;
await wait2;
callback([wait1, wait2]);
}
を
parallel(function(data) {
console.log('data', data);
});
問題は、あなたが値を読み取る場合ということです、彼らは約束されていることはこれを行うことができ、その問題を解決するために、代わりに実際の値のオブジェクトhttps://jsfiddle.net/jp3g2q5k/
しかし、あなたは私が.then
コールバックを使用しなければならなかった理由を私は理解して助けることができる:
今では、ここでのデモを動作しますか?それはコールバック自由な状況であると仮定します。あるいは、誰かがこのコードをコールバックなしで動作するように変更する方法を知っているかもしれません。
これは問題を解決します、ありがとうございます;) – Mevia