gpt4 book ai didi

javascript - 异步回调 JavaScript

转载 作者:行者123 更新时间:2023-11-30 12:42:53 25 4
gpt4 key购买 nike

我正在尝试解决必须使用异步回调的 JavaScript 挑战。

挑战内容如下:

定义一个名为 doStuffAsync 的函数,它接受一个参数回调。你的函数应该读取文件“passwords”的内容,将结果连同额外的文本“OWNED”写入文件“world.txt”,然后调用不带参数的回调。同时使用异步 readAsync 和异步 writeAsync。

我的代码如下:

var files = { "passwords": "abc,def", 
"world.txt": "hello" };
var readAsync = function(file, callback) {
callback(files[file]);
};
var writeAsync = function (file, contents, callback) {
files[file] = contents;
callback();
};
var test = function() {
files["out.txt"] = "final";
files["passwords"] = "blank";
};

//this is the part I'm interested in
var doStuffAsync = function (callback) {
var contents = 0;
contents = readAsync("passwords");
writeAsync("world.txt", contents, callback());
};

这是挑战的链接 http://nathansjslessons.appspot.com/lesson?id=1085

最佳答案

仅使用回调来完成此操作的最直接方法是像这样嵌套函数调用:

function doStuffAsync(callback) {
readAsync("passwords", function(contents) {
writeAsync("world.txt", contents + "OWNED", function() {
callback();
});
});
}

在这种情况下,由于您的回调函数不需要任何参数,因此您可以节省一层嵌套,只需执行以下操作即可:

function doStuffAsync(callback) {
readAsync("passwords", function(contents) {
writeAsync("world.txt", contents + "OWNED", callback);
});
}

只有两个回调操作并没有那么糟糕,但是当您需要按顺序执行大量异步步骤时,它很快就会变得非常困惑。 Promises是一种旨在帮助解决此问题的机制,我建议您检查一下。

关于javascript - 异步回调 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23765289/

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