Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactNative:wait/Async函数在继续之前等待结果_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript ReactNative:wait/Async函数在继续之前等待结果

Javascript ReactNative:wait/Async函数在继续之前等待结果,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我试图解决这个问题,我有一个函数,它调用另外两个函数,将元素推入数组。我的问题是,通过这种方式,第一个函数function1在完成计算后返回其值,代码继续。一旦第二个函数完成,它将返回其值,其余代码将再次执行 我想做的是,第一个函数function1(..)一结束就被调用,第二个函数function2(..)被调用,当两个数组都已满时,代码继续。我该怎么办 非常感谢 async initialFunction(){ ( async () => { awai

我试图解决这个问题,我有一个函数,它调用另外两个函数,将元素推入数组。我的问题是,通过这种方式,第一个函数
function1
在完成计算后返回其值,代码继续。一旦第二个函数完成,它将返回其值,其余代码将再次执行

我想做的是,第一个函数
function1(..)
一结束就被调用,第二个函数
function2(..)
被调用,当两个数组都已满时,代码继续。我该怎么办

非常感谢

async initialFunction(){

        ( async () => {
        await function1(arrayPopulated1);
        await function2(arrayPopulated2);

      
    }) ();
  // Code that use: newArray1 and newArray2  to write in the DB
}

async function1(array1){
    for(let i = 0; i < array1.length; i++){
    //operation there
    // value = somedata
    newArray1.push(value)
    }
}

async function1(array2){
    for(let i = 0; i < array2.length; i++){
    //operation there
    // value = somedata
    newArray2.push(value)
    }
}
async initialFunction(){
(异步()=>{
等待功能1(arrayPopulated1);
等待功能2(阵列人口2);
}) ();
//使用newArray1和newArray2在数据库中写入的代码
}
异步函数1(阵列1){
for(设i=0;i
编辑: 问题在于
function1
完成后,其值返回到
InitialFunction
继续此函数的代码并写入数据库。然后将
function2
的值返回到
InitialFunction
继续此函数的代码并再次写入数据库


我希望
function1
通过写入
newArray1
数组来完成它的for,
function2
来写入值​​到
newArray2
数组,当两个数组都已填充时,则
InitialFunction
写入数据库。

您不必在另一个异步函数中再次包装承诺

async initialFunction(){
常数newArray1=[];
常数newArray2=[];
等待功能1(arrayPopulated1);
等待功能2(阵列人口2);
//保存到数据库
}
异步函数1(阵列1){
for(设i=0;i
您不必在另一个异步函数中再次包装承诺

async initialFunction(){
常数newArray1=[];
常数newArray2=[];
等待功能1(arrayPopulated1);
等待功能2(阵列人口2);
//保存到数据库
}
异步函数1(阵列1){
for(设i=0;i
如果希望在继续之前完成两个承诺,可以将两个承诺都包装在一个Promise.all中

Promise.all([promise1, promise2, promise3]).then((values) => {
  console.log(values);
});

如果希望在继续之前完成两个承诺,可以将两个承诺都包装在一个Promise.all中

Promise.all([promise1, promise2, promise3]).then((values) => {
  console.log(values);
});


只需在
timestackCheckSinistro
之后再次调用
dataReceived
函数即可。嗯,您能解释一下吗?您的意思是我应该在timestampCheckSinistro中插入这样的.dataReceived()吗?问题是,在dataReceived()I中,“其他代码”是在数据库中编写的代码。老实说,我真的不理解解释。。也许你可以试着做一个代码笔,然后模仿数据库Ok我重写了我的代码以便更好地解释(我希望):)Ok我用一些通用的东西编辑我的问题以便更好地理解(也许xD)只要在
timestackchecksinistro
之后再次调用
dataReceived
函数即可。嗯,你能解释一下吗?您的意思是我应该在timestampCheckSinistro中插入这样的.dataReceived()吗?问题是,在dataReceived()I中,“其他代码”是在数据库中编写的代码。老实说,我真的不理解解释。。也许你可以试着做一个代码笔,只是模仿数据库好吧,我重写我的代码来更好地解释(我希望):)好吧,我用一些一般的东西来编辑我的问题,以便更好地理解(也许xD)嗯,好吧,我试着这样做:D问题是newArray2的一些值(初始值应该是值时,结果是NaN)您应该发布您认为有助于我们解决问题的所有代码;)是的,代码是这样的,用我的代码填充两个新数组,但时间不同。在那里,它只填充第一个。。就好像没有等待第二个编写测试数据一样,这两个函数是这样运行的:第1部分函数开始填充,停止,part Function 2开始填充并返回值还有一件奇怪的事,当数组很小时,代码工作得很好..嗯,好的,我正在尝试这个:D问题是newArray2的一些值(初始值应该是值时结果为NaN)你应该发布你认为可以帮助我们解决它的所有代码;)是的,代码是这样的,用我的代码填充两个新数组,但时间不同。在那里,它只填充第一个。。就好像没有等待第二个函数从执行的测试中写入数据一样,这两个函数是这样运行的:Part function 1开始填充,停止,Part function 2开始填充并返回值。奇怪的是,当数组很小时,代码工作得很好。。