告诉我一个指向运算符“??”描述的链接,搜索没有找到它,但在控制台中它的工作方式类似于“||”
let v;
console.log(v ?? 5);
告诉我一个指向运算符“??”描述的链接,搜索没有找到它,但在控制台中它的工作方式类似于“||”
let v;
console.log(v ?? 5);
我不明白如何在单元测试中调用这样的函数?
export function myFunction(val, min, max) {
return function (e) {
...
return result;
};
}
请帮助我,这是代码:
button.addListener(object : InputListener() {
override fun touchDown(event: InputEvent?, x: Float, y: Float, pointer: Int, button: Int): Boolean {
object : Dialog("window") {
init {
...
}
}
.show()
.addListener(object : InputListener() {
override fun touchDown(event: InputEvent?, x: Float, y: Float, pointer: Int, button: Int): Boolean {
if (...) {
??-->> dialog.hide()
}
return true
}
});
}
}
如何正确地在其中写一行dialog.hide()来引用创建的对象?(对话框(“窗口”))
什么命令可以读取不断写入的文件,并能够使用过滤实用程序grep?
我正在用 node.js 编写应用程序
我对 mysql 进行交易,https://github.com/mysqljs/mysql#transactions
应用程序启动时打开与数据库的连接
所有的交易都是通过它写的
对此,我想正确实现多线程,保持正常速度
问题:
beginTransaction通过或打开交易的最佳方式是什么START
TRANSACTION?UPDATE
在这种情况下交易将如何实施?:
00:00:00 beginTransaction1;
00:00:01 sql1-1;
00:00:02 beginTransaction2;
00:00:03 sql2-1;
00:00:04 sql1-2;
00:00:05 commit1;
00:00:06 sql2-2;
00:00:07 commit2;
交易是相互独立的还是会相互冲突?
需要依次对MySQL执行多个sql查询
调用我通过 Promise 实现的命令
但是问题出现了如何制作一个通用方法来顺序处理一组请求?
更具体地说,如何实现这样的 Promise 调用链?
class myClass() {
constructor() {
this.list = [sq1,sql2,sql3];
}
function myFunc(i) {
...
if(++i < list.length) {
if(...) list.push(newSQL); <= {1} <=
this.myFunc(i)
}
}
}
let m = new MyClass();
m.myFunct(0);
UPDATE
现在一个迭代是这样实现的,问题是如何顺序处理整个列表:
myBuy(sql) {
return new Promise((resolve, reject) => {
...
let promise = global._query(sql);
promise
.then(
data=>resolve(data),
err=>reject(err)
)
})
}
listSQL.forEach((e) =>
myClass.myBuy(e)
)
在表单过滤器 + 网格上
我通过 fetch 从后面获取数据
网格用接收到的数据更新
请求很重/很长
当用户在前一个请求完成之前生成一个新请求时,就会出现问题
网格中的内容被多次更新
是否有可能以某种方式中断/放弃“过时”的请求?
PS 在 clearTimeout / setTimeout 中包装 fetch 在这种情况下无济于事
PSS或者如何检查接收到的数据是否是上次promis的结果?
UPDATE
翻页ReactJS
发布代码不会给任何东西,tk。一般问题
情况是没有“FIND”按钮,请求是为过滤器中的每个“喷嚏”生成的
包含 10 个字段和下拉列表的巨大过滤器
出于客户的意识形态原因,在每次请求时禁用它是行不通的
我看到唯一的选择是拒绝或忽略过时的请求
但想看看BEST PRACTICES
UPDATE2
class View extends Component {
...
updateItems(data) {
self.state.timeoutItems && clearTimeout(self.state.timeoutItems);
self.state.timeoutItems = setTimeout(() => {
self.props.onGetItems(self.calcParams());
}, config.timeoutItems );
}
}
export default connect(
state => ({
items: state.items
}),
dispatch => ({
onGetItems: (o) => {
dispatch(getItems(o));
}
})
)(View);
...
export const getItems = (o = {}) => dispatch => {
...
fetch(url, {
method: 'GET',
headers: {
"Content-type": "application/json",
"Accept": "application/json"
},
})
.then( (response) => response.json() )
.then((data) => {
==>> (1) <<==
dispatch({ type: 'FETCH_ITEMS_SUCCESS', data: data });
})
.catch((error) => {
console.log('Request failed', error);
});
}
是否可以在第(1)点确定结果与哪个承诺相关?
通过访问主机对象this?
obj[i].addListener(new InputListener(){
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
obj/this - ?
...
return true;
};
});
解释笔记
一:
Object obj = new Object() {
Integer id = 10;
String name = "name";
};
2:
Object obj = new Object() {
{
Integer id = 10;
String name = "name";
}
};
这些条目之间有什么区别?变量将进入什么范围以及它们将获得什么访问修饰符?
是否可以使用以前未知的 JSON 结构?
我知道这样:
Json json = new Json();
MyClass myJson = json.fromJson(MyClass.class, str);
但是对于它你需要知道JSON结构并创建一个类层次结构,但是如果事先不知道json文件的结构,可以处理吗?
例如,在JS中,你可以将任何json转换成一个对象,然后循环处理它的字段
UPDATE
说说复杂的结构:
{
"id": 1,
"name": "my name",
"options": {
"desc":"text",
"flags": [1,3,5],
"object" : {
"field1":"value",
"field2":"value2",
"field3":"value2"
}
}
}
帮助进行集成测试。如果有很多关于单元测试的材料,那么我没有找到任何关于集成测试的合理示例。
专门针对该任务,您如何测试以下代码:
我有一个定期运行处理的应用程序:
该项目正在开发和更改数据及其结构,以及处理原则
我想要单元测试来支持这个功能
有助于正确设计测试,在此应用程序中可以测试什么以及如何测试?
保持原样有什么意义?
问题是现在一切都是紧凑的,但同时又是整体的,不可测试的
如果您对产品进行解构,将很难一次看到所有代码
必需的:
通过 redux 获取数据
dispatch(fetch()...
但数据进入道具(这是只读的)
在哪里以及如何将它们正确地转移到状态,以便随后可以通过 setState 编辑它们?
//Component
class myComponent extends Component {
...
}
export default connect(
state => ({
items: state.items
}),
dispatch => ({
onGetItems: () => {
dispatch(getItems());
}
})
)(myComponent);
...
// Middleware
export const getItems = () => dispatch => {
fetch(url, {
...
})
.then(function (data) {
dispatch({ type: 'SUCCESS', data: data });
})
.catch(function (error) {
console.log('Request failed', error);
});
}
...
// Reducer
const initialState = [];
export default function items(state = initialState, action) {
if (action.type === 'SUCCESS') {
return action.data;
}
return state;
}
UPDATE
表格的数据来自后面:
[
{
"id": 1,
"name": "ivan",
"value": 10
}, {
"id": 5,
"name": "fred",
"value": 3
}, {
"id": 25,
"name": "dima",
"value": 3
}
]
例如我们想重命名fred为stas
2 个 nodeJS 服务器正在运行,从一个我发出 ajax 请求到第二个:
fetch('http://localhost:3030/data.json', {
method: 'get',
headers: {
"Content-type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer abc"
}
})
.then( (response)=>response.json() )
.then(function (data) {
console.log('Request succeeded with JSON response', data);
})
.catch(function (error) {
console.log('Request failed', error);
});
因为Authorization浏览器必须发出 2 个 OPTIONS 和 GET 请求
但在 OPTIONS 上它返回:
Fetch API 无法加载http://localhost:3030/data.json。预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段授权。
General:
Request URL:http://localhost:3030/data.json
Request Method:OPTIONS
Status Code:200 OK
Remote Address:127.0.0.1:3030
Referrer Policy:no-referrer-when-downgrade
Response Headers:
access-control-allow-headers:content-type, accept
access-control-allow-methods:GET, POST, PUT, DELETE, OPTIONS
access-control-allow-origin:http://localhost:3000
access-control-max-age:10
Connection:keep-alive
Content-Type:application/json
Date:Wed, 26 Apr 2017 14:31:58 GMT
Transfer-Encoding:chunked
X-Powered-By:Express
Request Headers:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-GB,en;q=0.8,en-US;q=0.6,ru;q=0.4
Access-Control-Request-Headers:authorization,content-type
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:3030
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
帮助设置来自服务器的响应,以便 ajax 请求无错误地工作
我喜欢这样:
客户端.js
var fd = new FormData();
fd.append('test', 'test');
$.ajax({
url: '/form',
data: fd,
processData: false,
type: 'POST',
headers: {
'Content-Type': undefined
},
success: function ( d ) {
console.log( d );
},
error: function( a, b, c){
console.log( a );
console.log( b );
}
});
服务器.js
var multiparty = require('multiparty');
var app = express();
...
app.post('/form', function(req, res) {
var form = new multiparty.Form();
form.parse(req, function(err, fields, files) {
console.log('fields:', fields);
});
}
在日志中我得到:
字段:未定义
为什么不解析字段?
如何ленивую在应用程序中实现内容加载?
在某些游戏中,在启动应用程序后,会在征得用户同意的情况下加载附加内容。如何实现这样的机制?
如何(最好在清单中)设置landscape方向,但当设备旋转 180 度时,应用程序也会翻转,而不是倒立?
如您所知,它mongo修改表的名称,如果您指定名称,table它将被转换为复数 -tables
我有一个实体history,一个神奇的东西mongo按照规则把它变成了histories
但出于某种原因拒绝向其写入数据:
var data = {
id: 1,
name: "user1",
value: 10
}
var modelHistory = mongoose.model('Hystory', myShema),
table = new modelHistory(data)
table.save(function(err) {
err && console.log(err);
});
重命名模型后一切正常:
var modelHistory = mongoose.model('Hyst', myShema),
我是否正确理解它在英语монго中不能正常工作исключениями?