我想知道如何setTimeout()在ReactJS 上使用,因为我这样做:
timerid = setTimeout( () => this.reqMaq( obj['fkmaqid'] ), 2000 )
Run Code Online (Sandbox Code Playgroud)
它调用两次函数this.reqMaq().
如何阻止第一次通话?并且只是在时间之后保持通话?
这是组件:
reqMaq (maqid) {
return fetch(`/scamp/index.php/batchprodpry/${maqid}`, {credentials: 'same-origin'})
.then(req => {
if (req.status >= 400) {
throw new Error("Bad response from server")
}
return req.json()
})
.then(json => this.processMaqReq(json))
.catch(function(error) {
console.log('request failed', error)
})
}
handleChangeMaq (event) {
event.preventDefault()
if (event.target.value.length > 0) {
let obj = this.state.obj
obj['fkmaqid'] = VMasker.toPattern(event.target.value, "99-99-99-99")
// if (timerid) {
// clearTimeout(timerid)
// …Run Code Online (Sandbox Code Playgroud) 我想从insert语句或任何其他错误中捕获任何错误(即:外键错误)。我怎样才能做到这一点use Doctrine\DBAL\Exception?
当我执行以下操作时,我有这个insert:
$db->beginTransaction();
try {
$db->insert('bbc5.produccionpry',$datos);
$datos['propryid'] = $db->lastInsertId();
$db->commit();
// $db = null;
$resp[] = $datos;
} catch (Exception $e) {
$error = array_merge($error, array('error' => $e->errorInfo()));
$db->rollback();
throw $e;
}
Run Code Online (Sandbox Code Playgroud)
但是,这并不能阻止具体return的网站告诉错误,所以,我不希望显示该网站,我想在 anarray()中捕获错误以便通过echo json_encode($error)
我没有将控制器用于页面,而是使用它来管理来自我的 JavaScript 应用程序的 RESTful 调用,代码如下:
return fetch(`/scamp/index.php/batchprodpry/${maq}`, {
method: 'POST',
credentials: 'same-origin',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(this.state.a)
})
Run Code Online (Sandbox Code Playgroud)
我正在使用 ReactJS
谢谢
我想知道,我该怎么做才能在获取中以诺言方式调用函数?
请注意这一行: .then(json => this.processReq(json))
我不得不用this.,因为如果没有它说,processReq是undefined。应该不是这样的:.then(json => processReq(json))因为是ES6?
这是我的代码(我正在使用Babel ES6和React):
import React, { Component, PropTypes } from 'react'
import fetch from 'isomorphic-fetch'
export default class Batchprodpry extends Component {
constructor(props) {
super(props) {
.
.
.
processReq(json) {
Object.keys(json).forEach(item => {
if (item === 'error') {
Object.keys(json[item]).forEach(propry => {
alert('Conflicto! '+'\n'+
'Id: ' + JSON.stringify(json[item][propry]['propryid'])+'\n'+
'Id Operador: ' + JSON.stringify(json[item][propry]['fkempid'])+'\n'+
'Hora inicio: ' + JSON.stringify(json[item][propry]['propryhoraini'])+'\n'+
'Hora fin: ' + JSON.stringify(json[item][propry]['propryhorafin']))
})
} …Run Code Online (Sandbox Code Playgroud) reactjs ×2
database ×1
doctrine-orm ×1
ecmascript-6 ×1
es6-class ×1
exception ×1
fetch-api ×1
javascript ×1
settimeout ×1
symfony ×1