gpt4 book ai didi

javascript - 如何使其在 javascript 或 Node 中异步?

转载 作者:搜寻专家 更新时间:2023-11-01 00:40:28 24 4
gpt4 key购买 nike

var responseArr = new Array();
async.each(response, function (value, k) {
if(isDateFlag)
{
var defaultValue = value.auction_id;
grpArray.push(value.title);
var postData = {
parent_id : parent_id,
defaultValue : defaultValue,
isDateFlag : isDateFlag,
search_text : search_text
}
getChildNotificationList(postData, function (childArrayData) {
//Creating the response array

responseArr.push({
'notification_id' : childArrayData['notification_id'],
'notification_text' : childArrayData['notification_text']
});
});

}
});

return responseArr;//Blank Array

我想在从子数据查询中对其进行操作后返回最终的 responseArr。它返回空白数组,因为它不等待查询响应。

那么它怎么可能是异步的。谢谢

最佳答案

我提到了 http://justinklemm.com/node-js-async-tutorial/https://github.com/caolan/async .

发生这种情况是因为控件继续执行代码,因为 javascript 是同步的。为获得预期结果修改代码如下:

var responseArr = new Array();
async.each(response, function (value, k) {
if(isDateFlag){
var defaultValue = value.auction_id;
grpArray.push(value.title);
var postData = {
parent_id : parent_id,
defaultValue : defaultValue,
isDateFlag : isDateFlag,
search_text : search_text
}
getChildNotificationList(postData, function (childArrayData) {
//Creating the response array

responseArr.push({
'notification_id' : childArrayData['notification_id'],
'notification_text' : childArrayData['notification_text']
});
k();
});
} else {
k();
}
}, function (err) {
if (err) {
console.log(err);
} else {
return responseArr;
}
});

上面的代码在一个函数 block 中。您可以通过调用函数获得结果。

包括使用 async.map 的答案:

async.map(response, function (value, k) {
if(isDateFlag){
var defaultValue = value.auction_id;
grpArray.push(value.title);
var postData = {
parent_id : parent_id,
defaultValue : defaultValue,
isDateFlag : isDateFlag,
search_text : search_text
}
getChildNotificationList(postData, function (childArrayData) {

k(null, {
'notification_id' : childArrayData['notification_id'],
'notification_text' : childArrayData['notification_text']
});
});
} else {
k(null, {
'notification_id' : '',
'notification_text' : ''
});
}
}, function(err, results){
// results is now an array
return results;
});

关于javascript - 如何使其在 javascript 或 Node 中异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36400760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com