小编use*_*314的帖子

async/await总是返回promise

我正在尝试异步/等待功能.我有这样的代码模仿请求:

const getJSON = async () => {
  const request = () => new Promise((resolve, reject) => (
    setTimeout(() => resolve({ foo: 'bar'}), 2000)
  ));

  const json = await request();
  return json;
}
Run Code Online (Sandbox Code Playgroud)

当我以这种方式使用代码时

console.log(getJSON()); // returns Promise
Run Code Online (Sandbox Code Playgroud)

它返回一个Promise

但是当我调用这行代码时

getJSON().then(json => console.log(json)); // prints { foo: 'bar' }
Run Code Online (Sandbox Code Playgroud)

它按预期打印json

可以只使用像这样的代码console.log(getJSON())吗?我不明白什么?

javascript asynchronous promise async-await ecmascript-2017

28
推荐指数
3
解决办法
2万
查看次数

在macOS Sierra上安装mysql2 gem

我正在尝试在macOS Sierra(10.12.1)上安装mysql2 gem(0.4.5)并收到错误.我没有本地的mysql服务器,它是远程的.

这是错误日志:

checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes 
checking for rb_intern3()... yes 
-----
Using mysql_config at /usr/local/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Don't know how to set rpath on your system, if MySQL libraries are not    in path mysql2 may not load
-----
-----
Setting libpath to /usr/local/Cellar/mysql-connector-c/6.1.9/lib
-----
creating Makefile

To see …
Run Code Online (Sandbox Code Playgroud)

ruby mysql ruby-on-rails

13
推荐指数
2
解决办法
5046
查看次数

Next.js - 头元素不起作用

我有一个非常简单的布局组件,它使用HeadNext.js 附带的组件:

import React from 'react';                                                                                                 
import { Container } from 'semantic-ui-react';                                                                             
import { Head } from 'next/head';                                                                                                                                                                                                         

import Header from './Header';                                                                                             

const Layout = ({ children }) => (                                                                                         
  <Container>                                                                                                              
    <Head>                                                                                                                 
      <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.1/semantic.min.css" />                 
    </Head>                                                                                                                
    <Header />                                                                                                             
    {children}                                                                                                             
    <h1>Footer</h1>                                                                                                        
  </Container>                                                                                                             
);                                                                                                                         

export default Layout;  
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误:

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs next.js

5
推荐指数
1
解决办法
3064
查看次数

Rails db:种子未知属性

这里有一个问题。

我有一个 Rails 项目。当我想清除数据库并用一些测试数据填充它时,我运行:

rake db:drop db:create db:migrate db:seed
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

NoMethodError: undefined method login for #<User:0x007fecf46afe80>

当我单独运行时:

rake db:drop db:create db:migrate
rake db:seed
Run Code Online (Sandbox Code Playgroud)

一切顺利。

另外,我在db/seeds.rb中的所有操作都包含在ActiveRecord::Base.transaction块中。

我必须在db/seeds.rbUser.reset_column_information的顶部添加

rake db:drop db:create db:migrate db:seed

在职的。

我之前没有遇到同样的错误reset_column_information。有人知道为什么会发生这种情况吗?

PS:运行后,db/schema.rbrake db:drop db:create db:migrate中存在“缺失”列,我可以直接在 DB 中看到该列

sql database transactions ruby-on-rails

4
推荐指数
1
解决办法
1636
查看次数

React hook setState 参数

我想知道以下两个版本的代码之间的区别。两个版本的作用相同。

1)这里仅使用计数器变量来获取当前值

const Counter = () => {
  const [counter, setCounter] = useState(0);
  return <button onClick={() => setCounter(counter + 1)}>{counter}</button>;
}
Run Code Online (Sandbox Code Playgroud)

2)这个版本传递一个函数给setCounter

const Counter = () => {
  const [counter, setCounter] = useState(0);
  return <button onClick={() => setCounter(c => c + 1)}>{counter}</button>;
}
Run Code Online (Sandbox Code Playgroud)

官方文档说:

如果新状态是使用先前状态计算的,则可以将函数传递给 setState。该函数将接收先前的值,并返回更新后的值。

那么第一个选项有什么问题呢?有一些陷阱吗?

javascript reactjs react-hooks

3
推荐指数
1
解决办法
906
查看次数