我創建了這段小代碼,以重現我在一個應用程式中得到的錯誤:
我創建了這段小代碼。
const async = require("async")。
function sleep(ms) {
return new Promise((resolve)=>。 setTimeout(resolve, ms))。
}
const parallels = [] 。
for (let i = 0; i < 2; i ) {
parallels.push(async function(callback) {
const randomSleepTime = Math. ceil(Math.random() * 10000)。
await sleep(隨機睡眠時間)。
callback(randomSleepTime)。
});
}
async.parallel(parallels, function (err, results) {
console.log(err)。
console.log(results)。
});
這樣做之后,我得到了這個錯誤。TypeError: callback is not a function。
究竟為什么會出現這種情況?
uj5u.com熱心網友回復:
你可以洗掉async/await并使用.then代替:
const async = require('async')。
function sleep(ms) {
return new Promise((resolve)=>。 setTimeout(resolve, ms))。
}
const parallels = [] 。
for (let i = 0; i < 2; i ) {
parallels.push(function(callback) {
const randomSleepTime = Math. ceil(Math.random() * 100)。
sleep(randomSleepTime).then(() => {
callback(隨機睡眠時間)。
});
});
}
async.parallel(parallels, function(err, results) {
console.log(err)。
console.log(results)。
});
uj5u.com熱心網友回復:
解決方案是回傳值,而不是使用callback(),這里提到。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/317609.html
標籤:
下一篇:節點鏈然后不回傳
