javascript异步填充数组

标签 javascript asynchronous

我想了解如何编写自己的异步函数。

那么我怎样才能用大量元素async填充数组并立即看到'finish'行,而不是等待填充完成?

这是我尝试实现 Promise 和回调但没有成功的示例。

let arr = [];

populateAsync(arr);
console.log('finish');

function populateAsync(arr) {
    // somehow populate arr async till it reaches
    // 100000000 elements (big enough to make a delay)
} 

最佳答案

您可以使用 Promise 对象或只使用 setTimeout()

let arr = [];
populateAsync(arr);
console.log('finish');

function populateAsync(arr) {
    setTimeout(function(){
        //do something
    },0)
} 

有 promise

let arr = [];
populateAsync(arr).then(function(){//do something with arr
});
console.log('finish');

function populateAsync(arr) {
    return new Promise(function(resolve, reject){
        //do something
        resolve(arr); //resolve with value
    });
} 

关于javascript异步填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40854946/

相关文章:

javascript - 模态窗口后恢复基本 url

javascript - ASP.NET Core 使用 ViewComponent 跟踪侧边栏的事件页面

javascript - 异步获取数据,将结果聚合到一个对象。默认情况下,对象是否被 javascript 锁定?

asynchronous - Flutter/Dart - 调用一个 Future<String> 的函数......但只需要返回一个 String

javascript - 将 'async' 属性添加到 asp.net Web 表单中的 JS include 标记

c# - 等待后的代码不起作用

javascript - 以后转换成二维坐标的良好数据结构?

javascript - splitPinCodes.split (',' )给出错误

c# - WebApi Controller - 发送邮件异步

javascript - 解析 JSON 时出现此语法错误的原因是什么?