javascript - 并行运行两个函数,然后在 javascript 中使用 prev 函数的结果调用另一个函数
问题描述
我的javascript代码..
function testdata(){
var strtest_data='';
var strtest1_data='';
d3.json("js/test.json").then(function(test_json) {
strtest_data=JSON.stringify(test_json);
console.log(strtest_data);
})
d3.json("js/test.json").then(function(test_json1) {
strtest1_data=JSON.stringify(test_json1);
console.log(strtest_data1);
})
console.log(strtest_data);
var testobj=JSON.parse(strtest_data);
var testobj1=JSON.parse(strtest_data1);
console.log(JSON.stringify({data:testobj.quiz, more:testobj1.maths}));
}
在上面的代码中,我使用 d3.json 调用了两个函数(为了简洁起见,我调用了相同的 test.json),然后结果调用了另一个函数。这里的函数是 console.log 但在实际场景中可能是使用 fetch 的 ajax POST 调用。
上面的代码不起作用,因为代码的底部在 d3.json 完成之前运行..
我真诚地感谢任何帮助解决这个问题。
谢谢
解决方案
d3.json
是异步方法,所以如果你想顺序调用它,使用async/await
async function testdata() {
let strtest_data = ""
let strtest1_data = ""
const test_json = await d3.json("js/test.json")
strtest_data = JSON.stringify(test_json)
console.log(strtest_data)
const test_json1 = await d3.json("js/test.json")
strtest1_data = JSON.stringify(test_json1)
console.log(strtest_data1)
var testobj = JSON.parse(strtest_data)
var testobj1 = JSON.parse(strtest_data1)
console.log(JSON.stringify({ data: testobj.quiz, more: testobj1.maths }))
}
或同时使用Promise.all
async function testdata() {
let strtest_data = ""
let strtest1_data = ""
const [test_json, test_json1] = await Promise.all([
d3.json("js/test.json"),
d3.json("js/test.json"),
])
strtest_data = JSON.stringify(test_json)
strtest1_data = JSON.stringify(test_json1)
console.log(strtest_data)
console.log(strtest_data1)
var testobj = JSON.parse(strtest_data)
var testobj1 = JSON.parse(strtest_data1)
console.log(JSON.stringify({ data: testobj.quiz, more: testobj1.maths }))
}
推荐阅读
- r - R,代码在没有 for 循环的情况下工作,但不在循环内
- ios - (SWIFT 4)如何计算 tableview 中列 indexpath.row 的总和?
- apache - content-security-policy 正在阻止我需要的内容
- android - 加载项目时如何设置recyclerview的背景?
- javascript - React-Redux Dashboard 应用结构
- python - 我希望它打印 hello_ch 变量但我找不到这样做的方法 中文翻译工具
- javascript - 无法在 document.write 中获取脚本源
- python - matplotlib 等高线图颜色条
- c# - 即使在客户端 ShutDown() 之后,Socket.Receive 也会阻塞
- css - 如何在 CSS 中将图像不透明度与 nth-child 或 nth-of-type 结合使用?