Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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在React和node中的Sync/Async行为不同?_Javascript_Node.js_Reactjs_Async Await - Fatal编程技术网

为什么JavaScript在React和node中的Sync/Async行为不同?

为什么JavaScript在React和node中的Sync/Async行为不同?,javascript,node.js,reactjs,async-await,Javascript,Node.js,Reactjs,Async Await,这是我的React项目中的代码 如果阅读onSearchSubmit函数writenline:3+unsplash是axios.create调用 这是一个简单的代码 等待 对于第二行,当它结束时,执行下一行 有什么区别?这两个都是JS代码,但对我来说,它们的行为不同。unsplash.get返回一个承诺 它返回一个需要解决的承诺。只要它没有被解析,它就不会返回任何内容,因此响应将是未定义的。要解决这个问题,您可以像以前一样在异步函数中使用wait,告诉代码等待结果: const response

这是我的React项目中的代码

如果阅读onSearchSubmit函数writenline:3+unsplash是axios.create调用

这是一个简单的代码 等待 对于第二行,当它结束时,执行下一行

有什么区别?这两个都是JS代码,但对我来说,它们的行为不同。

unsplash.get返回一个承诺 它返回一个需要解决的承诺。只要它没有被解析,它就不会返回任何内容,因此响应将是未定义的。要解决这个问题,您可以像以前一样在异步函数中使用wait,告诉代码等待结果:

const response=wait unsplash.get; 或者你可以用经典。然后

去鞭笞 .thenresponse=>{ //…继续这里 } .catcherror=>{ //…错误处理程序 }; readFileSync是一个同步操作,不返回承诺 由于这是一个正常的同步函数,因此默认情况下,代码仅在该函数完成后继续。

unsplash.get返回一个承诺 它返回一个需要解决的承诺。只要它没有被解析,它就不会返回任何内容,因此响应将是未定义的。要解决这个问题,您可以像以前一样在异步函数中使用wait,告诉代码等待结果:

const response=wait unsplash.get; 或者你可以用经典。然后

去鞭笞 .thenresponse=>{ //…继续这里 } .catcherror=>{ //…错误处理程序 }; readFileSync是一个同步操作,不返回承诺 由于这是一个正常的同步函数,因此默认情况下,您的代码仅在该函数完成后继续运行。

axios.get函数是异步的,因此您必须使用wait以使响应变量可用,而fs.readFileSync是一个同步函数,其名称正确,asynchronous版本是fs.readFile,因此代码会等待它完成。

axios.get函数是异步的,因此必须使用wait才能使用响应变量,而fs.readFileSync是一个同步函数,它的名称正确,Asynchronous版本是fs.readFile,因此代码等待它完成。

根据,它引用了

同步表单会阻止Node.js事件循环和进一步的JavaScript执行,直到操作完成

因此,readFileSync是一种同步方法,它将等待操作完成,然后再进行另一个操作。即使在它的节目中

返回:字符串|缓冲区

仅供参考,readFile也有一个

根据,它引用了

同步表单会阻止Node.js事件循环和进一步的JavaScript执行,直到操作完成

因此,readFileSync是一种同步方法,它将等待操作完成,然后再进行另一个操作。即使在它的节目中

返回:字符串|缓冲区

仅供参考,readFile还有一个

class App extends React.Component {
    state = { images: [] };

    onSearchSubmit = async term => {
        const response = await unsplash.get('/search/photos', {
            params: { query: term }
        });
        this.setState({ images: response.data.results });
    };

    render() {
        return (
            <div className='ui container' style={{ marginTop: '10px' }}>
                <SearchBar onSubmit={this.onSearchSubmit} />
                <ImageList images={this.state.images} />
            </div>
        );
    }
}
const fs = require('fs');
const input = fs.readFileSync('input.txt', 'utf-8');
console.log(input);